[INFO] fetching crate finality-grandpa 0.16.3...
[INFO] fixing finality-grandpa-0.16.3 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate finality-grandpa 0.16.3 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate finality-grandpa 0.16.3
[INFO] finished tweaking crates.io crate finality-grandpa 0.16.3
[INFO] tweaked toml for crates.io crate finality-grandpa 0.16.3 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate finality-grandpa 0.16.3 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 80 packages to latest compatible versions
[INFO] [stderr]       Adding rand v0.8.6 (available: v0.10.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 31cfe4d8921721bde3b35cac4a2e81eb6f229e7aeb997ce85643f7b95193b4bd
[INFO] running `Command { std: "docker" "start" "31cfe4d8921721bde3b35cac4a2e81eb6f229e7aeb997ce85643f7b95193b4bd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "31cfe4d8921721bde3b35cac4a2e81eb6f229e7aeb997ce85643f7b95193b4bd" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "31cfe4d8921721bde3b35cac4a2e81eb6f229e7aeb997ce85643f7b95193b4bd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "31cfe4d8921721bde3b35cac4a2e81eb6f229e7aeb997ce85643f7b95193b4bd" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking konst_macro_rules v0.2.19
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling parity-scale-codec v3.7.5
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.34
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking byte-slice-cast v1.2.3
[INFO] [stderr]     Checking arrayvec v0.7.7
[INFO] [stderr]    Compiling parity-scale-codec-derive v3.7.5
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling impl-trait-for-tuples v0.2.3
[INFO] [stderr]    Compiling scale-info-derive v2.11.6
[INFO] [stderr]     Checking futures-timer v3.0.4
[INFO] [stderr]     Checking konst v0.2.20
[INFO] [stderr]     Checking rand v0.10.1
[INFO] [stderr]     Checking const_format v0.2.36
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking derive_more v1.0.0
[INFO] [stderr]     Checking scale-info v2.11.6
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking finality-grandpa v0.16.3 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]     Checking regex v1.12.4
[INFO] [stderr]     Checking env_filter v1.0.1
[INFO] [stderr]     Checking env_logger v0.11.10
[INFO] [stderr]     Checking quickcheck v1.1.0
[INFO] [stderr]        Fixed src/voter/mod.rs (2 fixes)
[INFO] [stderr]        Fixed src/voter/voting_round.rs (2 fixes)
[INFO] [stderr]        Fixed src/round.rs (4 fixes)
[INFO] [stderr]        Fixed src/vote_graph.rs (1 fix)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/vote_graph.rs:192:10
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let mut inspecting_hash = hash;
[INFO] [stdout]     |             -------------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `inspecting_hash` calls a custom destructor
[INFO] [stdout]     |             `inspecting_hash` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 192 |             match active_entry.ancestor_node() {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 196 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/vote_graph.rs:211:10
[INFO] [stdout]     |
[INFO] [stdout] 206 |     pub fn find_ancestor<F>(&self, mut hash: H, mut number: N, condition: F) -> Option<(H, N)>
[INFO] [stdout]     |                                    --------
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    `hash` calls a custom destructor
[INFO] [stdout]     |                                    `hash` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 211 |             match self.find_containing_nodes(hash.clone(), number) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 229 |                 Some(children) => {
[INFO] [stdout]     |                      --------
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      `children` calls a custom destructor
[INFO] [stdout]     |                      `children` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 238 |                     let mut v = V::default();
[INFO] [stdout]     |                         -----
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `v` calls a custom destructor
[INFO] [stdout]     |                         `v` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 260 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/voter/past_rounds.rs:194:4
[INFO] [stdout]     |
[INFO] [stdout] 194 |             Stream::poll_next(Pin::new(&mut self.import_commits), cx)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |             up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 195 |         {
[INFO] [stdout] 196 |             if !self.import_commit(voting_round, commit)? {
[INFO] [stdout]     |                 -----------------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 199 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/voter/past_rounds.rs:326:10
[INFO] [stdout]      |
[INFO] [stdout]  326 |               match Stream::poll_next(Pin::new(&mut self.past_rounds), cx) {
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                     up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  327 |                   Poll::Ready(Some((Ok(BackgroundRoundChange::Concluded(number)), round))) => {
[INFO] [stdout]      |                                                                                   -----
[INFO] [stdout]      |                                                                                   |
[INFO] [stdout]      |                                                                                   `round` calls a custom destructor
[INFO] [stdout]      |                                                                                   `round` will be dropped later as of Edition 2024
[INFO] [stdout]  328 |                       let round = &round.inner;
[INFO] [stdout]  329 | /                     round.env().concluded(
[INFO] [stdout]  330 | |                         round.round_number(),
[INFO] [stdout]  331 | |                         round.round_state(),
[INFO] [stdout]  332 | |                         round.dag_base(),
[INFO] [stdout]  333 | |                         round.historical_votes(),
[INFO] [stdout]  334 | |                     )?;
[INFO] [stdout]      | |                      -
[INFO] [stdout]      | |                      |
[INFO] [stdout]      | |______________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]  335 |
[INFO] [stdout]  336 |                       self.commit_senders.remove(&number);
[INFO] [stdout]      |                       -----------------------------------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  359 |           }
[INFO] [stdout]      |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:1352:1
[INFO] [stdout]      |
[INFO] [stdout] 1352 | impl<T> Drop for UnboundedReceiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]      |
[INFO] [stdout]  969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `round` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:1352:1
[INFO] [stdout]      |
[INFO] [stdout] 1352 | impl<T> Drop for UnboundedReceiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `round` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]      |
[INFO] [stdout]  969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]      |
[INFO] [stdout]  969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/voter/voting_round.rs:449:43
[INFO] [stdout]     |
[INFO] [stdout] 449 |         while let Poll::Ready(Some(incoming)) = Stream::poll_next(Pin::new(&mut self.incoming), cx)
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                 up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 452 |             self.handle_vote(incoming?)?;
[INFO] [stdout]     |             ----------------------------
[INFO] [stdout]     |             |                |
[INFO] [stdout]     |             |                this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |             |                `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 453 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/voter/mod.rs:606:5
[INFO] [stdout]     |
[INFO] [stdout] 606 |                 Stream::poll_next(Pin::new(&mut inner.past_rounds), cx)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                 up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 607 |             {
[INFO] [stdout] 608 |                 let (number, commit) = item?;
[INFO] [stdout]     |                                        -----
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                        `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 609 |                 self.global_out.push(CommunicationOut::Commit(number, commit));
[INFO] [stdout] 610 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/voter/mod.rs:614:4
[INFO] [stdout]     |
[INFO] [stdout] 614 |             Stream::poll_next(Pin::new(&mut self.finalized_notifications), cx)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |             up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 615 |         {
[INFO] [stdout] 616 |             let inner = self.inner.clone();
[INFO] [stdout]     |                 -----
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `inner` calls a custom destructor
[INFO] [stdout]     |                 `inner` will be dropped later as of Edition 2024
[INFO] [stdout] 617 |             let mut inner = inner.lock();
[INFO] [stdout]     |                 ---------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 618 |
[INFO] [stdout] 619 |             let (f_hash, f_num, round, commit) =
[INFO] [stdout]     |                  ------                ------
[INFO] [stdout]     |                  |                     |
[INFO] [stdout]     |                  |                     `commit` calls a custom destructor
[INFO] [stdout]     |                  |                     `commit` will be dropped later as of Edition 2024
[INFO] [stdout]     |                  `f_hash` calls a custom destructor
[INFO] [stdout]     |                  `f_hash` will be dropped later as of Edition 2024
[INFO] [stdout] 620 |                 res.expect("one sender always kept alive in self.best_round; qed");
[INFO] [stdout]     |                 ------------------------------------------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 625 |                 self.env.finalize_block(f_hash.clone(), f_num, round, commit)?;
[INFO] [stdout]     |                 --------------------------------------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 631 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `inner` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]     |
[INFO] [stdout] 969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `inner` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.32/src/stream/futures_unordered/mod.rs:575:1
[INFO] [stdout]     |
[INFO] [stdout] 575 | impl<Fut> Drop for FuturesUnordered<Fut> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `inner` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]     |
[INFO] [stdout] 969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stdout]     |
[INFO] [stdout] 701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/voter/mod.rs:662:12
[INFO] [stdout]     |
[INFO] [stdout] 658 |                     let mut inner = self.inner.lock();
[INFO] [stdout]     |                         ---------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `inner` calls a custom destructor
[INFO] [stdout]     |                         `inner` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 662 |                     match inner.past_rounds.import_commit(round_number, commit) { Some(commit) => {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 699 |                 },
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `inner` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stdout]     |
[INFO] [stdout] 701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/voter/mod.rs:646:10
[INFO] [stdout]     |
[INFO] [stdout] 646 |               match item? {
[INFO] [stdout]     |                     ^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                     up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                     up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 647 |                   CommunicationIn::Commit(round_number, commit, mut process_commit_outcome) => {
[INFO] [stdout]     |                                                                 --------------------------
[INFO] [stdout]     |                                                                 |
[INFO] [stdout]     |                                                                 `process_commit_outcome` calls a custom destructor
[INFO] [stdout]     |                                                                 `process_commit_outcome` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 658 |                       let mut inner = self.inner.lock();
[INFO] [stdout]     |                           ---------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `inner` calls a custom destructor
[INFO] [stdout]     |                           `inner` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 662 |                       match inner.past_rounds.import_commit(round_number, commit) { Some(commit) => {
[INFO] [stdout]     |                                                                                          ------
[INFO] [stdout]     |                                                                                          |
[INFO] [stdout]     |                                                                                          `commit` calls a custom destructor
[INFO] [stdout]     |                                                                                          `commit` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 678 | /                                 self.env.finalize_block(
[INFO] [stdout] 679 | |                                     commit.target_hash.clone(),
[INFO] [stdout] 680 | |                                     commit.target_number,
[INFO] [stdout] 681 | |                                     round_number,
[INFO] [stdout] 682 | |                                     commit,
[INFO] [stdout] 683 | |                                 )?;
[INFO] [stdout]     | |                                  -
[INFO] [stdout]     | |                                  |
[INFO] [stdout]     | |__________________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 700 |                   CommunicationIn::CatchUp(catch_up, mut process_catch_up_outcome) => {
[INFO] [stdout]     |                                                      ----------------------------
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      `process_catch_up_outcome` calls a custom destructor
[INFO] [stdout]     |                                                      `process_catch_up_outcome` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 707 |                       let mut inner = self.inner.lock();
[INFO] [stdout]     |                           ---------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 708 |
[INFO] [stdout] 709 |                       let round = match validate_catch_up(
[INFO] [stdout]     |  _______________________________________-
[INFO] [stdout]     | |_______________________________________|
[INFO] [stdout] 710 | |                         catch_up,
[INFO] [stdout] 711 | |                         &*self.env,
[INFO] [stdout] 712 | |                         &self.voters,
[INFO] [stdout] 713 | |                         inner.best_round.round_number(),
[INFO] [stdout] 714 | |                     ) { Some(round) => {
[INFO] [stdout]     | |                     -
[INFO] [stdout]     | |_____________________|
[INFO] [stdout]     | |_____________________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 722 | |                     let state = round.state();
[INFO] [stdout]     | |                         -----
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `state` calls a custom destructor
[INFO] [stdout]     | |                         `state` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 726 | |                     let mut just_completed = VotingRound::completed(
[INFO] [stdout]     | |                         ------------------
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `just_completed` calls a custom destructor
[INFO] [stdout]     | |                         `just_completed` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 733 | |                     let new_best = VotingRound::new(
[INFO] [stdout]     | |                         --------
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `new_best` calls a custom destructor
[INFO] [stdout]     | |                         `new_best` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 744 | |                     if let Some((f_hash, f_num)) = state.finalized.clone() {
[INFO] [stdout]     | |                                  ------            -----------------------
[INFO] [stdout]     | |                                  |                 |
[INFO] [stdout]     | |                                  |                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     | |                                  |                 `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                  `f_hash` calls a custom destructor
[INFO] [stdout]     | |                                  `f_hash` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 750 | /                     self.env.completed(
[INFO] [stdout] 751 | |                         just_completed.round_number(),
[INFO] [stdout] 752 | |                         just_completed.round_state(),
[INFO] [stdout] 753 | |                         just_completed.dag_base(),
[INFO] [stdout] 754 | |                         just_completed.historical_votes(),
[INFO] [stdout] 755 | |                     )?;
[INFO] [stdout]     | |                      -
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     | |______________________this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                        `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 766 | |         }
[INFO] [stdout]     | |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `process_commit_outcome` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `inner` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stdout]     |
[INFO] [stdout] 701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `process_catch_up_outcome` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stdout]     |
[INFO] [stdout] 701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `just_completed` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]     |
[INFO] [stdout] 969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `new_best` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]     |
[INFO] [stdout] 969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/voter/mod.rs:645:39
[INFO] [stdout]     |
[INFO] [stdout] 645 |           while let Poll::Ready(Some(item)) = Stream::poll_next(Pin::new(&mut self.global_in), cx) {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                               up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 646 |               match item? {
[INFO] [stdout] 647 |                   CommunicationIn::Commit(round_number, commit, mut process_commit_outcome) => {
[INFO] [stdout]     |                                                                 --------------------------
[INFO] [stdout]     |                                                                 |
[INFO] [stdout]     |                                                                 `process_commit_outcome` calls a custom destructor
[INFO] [stdout]     |                                                                 `process_commit_outcome` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 658 |                       let mut inner = self.inner.lock();
[INFO] [stdout]     |                           ---------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `inner` calls a custom destructor
[INFO] [stdout]     |                           `inner` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 662 |                       match inner.past_rounds.import_commit(round_number, commit) { Some(commit) => {
[INFO] [stdout]     |                                                                                          ------
[INFO] [stdout]     |                                                                                          |
[INFO] [stdout]     |                                                                                          `commit` calls a custom destructor
[INFO] [stdout]     |                                                                                          `commit` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 678 | /                                 self.env.finalize_block(
[INFO] [stdout] 679 | |                                     commit.target_hash.clone(),
[INFO] [stdout] 680 | |                                     commit.target_number,
[INFO] [stdout] 681 | |                                     round_number,
[INFO] [stdout] 682 | |                                     commit,
[INFO] [stdout] 683 | |                                 )?;
[INFO] [stdout]     | |                                  -
[INFO] [stdout]     | |                                  |
[INFO] [stdout]     | |__________________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 700 |                   CommunicationIn::CatchUp(catch_up, mut process_catch_up_outcome) => {
[INFO] [stdout]     |                                                      ----------------------------
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      `process_catch_up_outcome` calls a custom destructor
[INFO] [stdout]     |                                                      `process_catch_up_outcome` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 707 |                       let mut inner = self.inner.lock();
[INFO] [stdout]     |                           ---------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 708 |
[INFO] [stdout] 709 |                       let round = match validate_catch_up(
[INFO] [stdout]     |  _______________________________________-
[INFO] [stdout]     | |_______________________________________|
[INFO] [stdout] 710 | |                         catch_up,
[INFO] [stdout] 711 | |                         &*self.env,
[INFO] [stdout] 712 | |                         &self.voters,
[INFO] [stdout] 713 | |                         inner.best_round.round_number(),
[INFO] [stdout] 714 | |                     ) { Some(round) => {
[INFO] [stdout]     | |                     -
[INFO] [stdout]     | |_____________________|
[INFO] [stdout]     | |_____________________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 722 | |                     let state = round.state();
[INFO] [stdout]     | |                         -----
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `state` calls a custom destructor
[INFO] [stdout]     | |                         `state` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 726 | |                     let mut just_completed = VotingRound::completed(
[INFO] [stdout]     | |                         ------------------
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `just_completed` calls a custom destructor
[INFO] [stdout]     | |                         `just_completed` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 733 | |                     let new_best = VotingRound::new(
[INFO] [stdout]     | |                         --------
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `new_best` calls a custom destructor
[INFO] [stdout]     | |                         `new_best` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 744 | |                     if let Some((f_hash, f_num)) = state.finalized.clone() {
[INFO] [stdout]     | |                                  ------            -----------------------
[INFO] [stdout]     | |                                  |                 |
[INFO] [stdout]     | |                                  |                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     | |                                  |                 `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                  `f_hash` calls a custom destructor
[INFO] [stdout]     | |                                  `f_hash` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 750 | /                     self.env.completed(
[INFO] [stdout] 751 | |                         just_completed.round_number(),
[INFO] [stdout] 752 | |                         just_completed.round_state(),
[INFO] [stdout] 753 | |                         just_completed.dag_base(),
[INFO] [stdout] 754 | |                         just_completed.historical_votes(),
[INFO] [stdout] 755 | |                     )?;
[INFO] [stdout]     | |                      -
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     | |______________________this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                        `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 766 | |         }
[INFO] [stdout]     | |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `process_commit_outcome` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `inner` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stdout]     |
[INFO] [stdout] 701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `process_catch_up_outcome` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stdout]     |
[INFO] [stdout] 701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `just_completed` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]     |
[INFO] [stdout] 969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `new_best` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]     |
[INFO] [stdout] 969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/voter/mod.rs:1040:9
[INFO] [stdout]      |
[INFO] [stdout] 1039 |     for crate::SignedPrevote { prevote, id, signature } in catch_up.prevotes {
[INFO] [stdout]      |                                                            -----------------
[INFO] [stdout]      |                                                            |
[INFO] [stdout]      |                                                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 1040 |         match round.import_prevote(env, prevote, id, signature) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1052 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/voter/mod.rs:1056:9
[INFO] [stdout]      |
[INFO] [stdout] 1055 |     for crate::SignedPrecommit { precommit, id, signature } in catch_up.precommits {
[INFO] [stdout]      |                                                                -------------------
[INFO] [stdout]      |                                                                |
[INFO] [stdout]      |                                                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                                                `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 1056 |         match round.import_precommit(env, precommit, id, signature) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1068 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/voter_set.rs:67:11
[INFO] [stdout]    |
[INFO] [stdout] 61 |         for (id, weight) in weights {
[INFO] [stdout]    |              --             -------
[INFO] [stdout]    |              |              |
[INFO] [stdout]    |              |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |              |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |              `id` calls a custom destructor
[INFO] [stdout]    |              `id` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 67 |                 match voters.entry(id) {
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 81 |             }
[INFO] [stdout]    |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: errors present after applying fixes to crate `finality_grandpa`
[INFO] [stderr]  --> src/testing.rs
[INFO] [stderr]  ::: src/vote_graph.rs
[INFO] [stderr]  ::: src/voter/mod.rs
[INFO] [stderr]  ::: src/voter/past_rounds.rs
[INFO] [stderr]  ::: src/voter/voting_round.rs
[INFO] [stderr]  ::: src/voter_set.rs
[INFO] [stderr]   = cause: error[E0433]: cannot find type `StreamExt` in this scope
[INFO] [stderr]                --> src/voter/mod.rs:1340:5
[INFO] [stdout] warning: trait method `into_future` will become ambiguous in Rust 2024
[INFO] [stdout]     --> src/voter/mod.rs:1340:5
[INFO] [stdout]      |
[INFO] [stdout] 1340 | /                 round_stream
[INFO] [stdout] 1341 | |                     .into_future()
[INFO] [stdout]      | |__________________________________^ help: disambiguate the associated function: `StreamExt::into_future(round_stream)`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/prelude.html>
[INFO] [stdout]      = note: `--force-warn rust-2024-prelude-collisions` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stdout] warning: trait method `into_future` will become ambiguous in Rust 2024
[INFO] [stdout]     --> src/voter/mod.rs:1379:4
[INFO] [stdout]      |
[INFO] [stdout] 1379 |             commits_stream.into_future().then(|(_, stream)| {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: disambiguate the associated function: `StreamExt::into_future(commits_stream)`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/prelude.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            1340 |                 StreamExt::into_future(round_stream)
[INFO] [stdout] warning: trait method `into_future` will become ambiguous in Rust 2024
[INFO] [stdout]     --> src/voter/mod.rs:1451:15
[INFO] [stdout]      |
[INFO] [stdout] 1451 |             .run_until(env.finalized_stream().into_future().map(move |(msg, _)| msg.unwrap().2));
[INFO] [stdout]      |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: disambiguate the associated function: `StreamExt::into_future(env.finalized_stream())`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/prelude.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |                 ^^^^^^^^^ use of undeclared type `StreamExt`
[INFO] [stdout] warning: trait method `into_future` will become ambiguous in Rust 2024
[INFO] [stdout]     --> src/voter/mod.rs:1533:19
[INFO] [stdout]      |
[INFO] [stdout] 1533 |         let finalized = env.finalized_stream().take(1).into_future();
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: disambiguate the associated function: `StreamExt::into_future(env.finalized_stream().take(1))`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/prelude.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stdout] warning: trait method `into_future` will become ambiguous in Rust 2024
[INFO] [stdout]     --> src/voter/mod.rs:1689:4
[INFO] [stdout]      |
[INFO] [stdout] 1689 | /             round_stream
[INFO] [stdout] 1690 | |                 .skip_while(move |v| {
[INFO] [stdout] 1691 | |                     let v = v.as_ref().unwrap();
[INFO] [stdout] 1692 | |                     if let Message::Prevote(_) = v.message {
[INFO] [stdout] ...    |
[INFO] [stdout] 1697 | |                 })
[INFO] [stdout] 1698 | |                 .into_future()
[INFO] [stdout]      | |______________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/prelude.html>
[INFO] [stdout] help: disambiguate the associated function
[INFO] [stdout]      |
[INFO] [stdout] 1689 ~             StreamExt::into_future(round_stream
[INFO] [stdout] 1690 ~                 .skip_while(move |v| {
[INFO] [stdout] 1691 ~                     let v = v.as_ref().unwrap();
[INFO] [stdout] 1692 ~                     if let Message::Prevote(_) = v.message {
[INFO] [stdout] 1693 ~                         future::ready(v.id != local_id)
[INFO] [stdout] 1694 ~                     } else {
[INFO] [stdout] 1695 ~                         future::ready(true)
[INFO] [stdout] 1696 ~                     }
[INFO] [stdout] 1697 ~                 }))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            help: a trait with a similar name exists
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/vote_graph.rs:192:10
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let mut inspecting_hash = hash;
[INFO] [stdout]     |             -------------------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `inspecting_hash` calls a custom destructor
[INFO] [stdout]     |             `inspecting_hash` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 192 |             match active_entry.ancestor_node() {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 196 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/vote_graph.rs:211:10
[INFO] [stdout]     |
[INFO] [stdout] 206 |     pub fn find_ancestor<F>(&self, mut hash: H, mut number: N, condition: F) -> Option<(H, N)>
[INFO] [stdout]     |                                    --------
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    `hash` calls a custom destructor
[INFO] [stdout]     |                                    `hash` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 211 |             match self.find_containing_nodes(hash.clone(), number) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 229 |                 Some(children) => {
[INFO] [stdout]     |                      --------
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      `children` calls a custom destructor
[INFO] [stdout]     |                      `children` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 238 |                     let mut v = V::default();
[INFO] [stdout]     |                         -----
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `v` calls a custom destructor
[INFO] [stdout]     |                         `v` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 260 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            1340 -                 StreamExt::into_future(round_stream)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/voter/past_rounds.rs:194:4
[INFO] [stdout]     |
[INFO] [stdout] 194 |             Stream::poll_next(Pin::new(&mut self.import_commits), cx)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |             up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 195 |         {
[INFO] [stdout] 196 |             if !self.import_commit(voting_round, commit)? {
[INFO] [stdout]     |                 -----------------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 199 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            1340 +                 Stream::into_future(round_stream)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/voter/past_rounds.rs:326:10
[INFO] [stdout]      |
[INFO] [stdout]  326 |               match Stream::poll_next(Pin::new(&mut self.past_rounds), cx) {
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                     up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  327 |                   Poll::Ready(Some((Ok(BackgroundRoundChange::Concluded(number)), round))) => {
[INFO] [stdout]      |                                                                                   -----
[INFO] [stdout]      |                                                                                   |
[INFO] [stdout]      |                                                                                   `round` calls a custom destructor
[INFO] [stdout]      |                                                                                   `round` will be dropped later as of Edition 2024
[INFO] [stdout]  328 |                       let round = &round.inner;
[INFO] [stdout]  329 | /                     round.env().concluded(
[INFO] [stdout]  330 | |                         round.round_number(),
[INFO] [stdout]  331 | |                         round.round_state(),
[INFO] [stdout]  332 | |                         round.dag_base(),
[INFO] [stdout]  333 | |                         round.historical_votes(),
[INFO] [stdout]  334 | |                     )?;
[INFO] [stdout]      | |                      -
[INFO] [stdout]      | |                      |
[INFO] [stdout]      | |______________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]  335 |
[INFO] [stdout]  336 |                       self.commit_senders.remove(&number);
[INFO] [stdout]      |                       -----------------------------------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  359 |           }
[INFO] [stdout]      |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:1352:1
[INFO] [stdout]      |
[INFO] [stdout] 1352 | impl<T> Drop for UnboundedReceiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]      |
[INFO] [stdout]  969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `round` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:1352:1
[INFO] [stdout]      |
[INFO] [stdout] 1352 | impl<T> Drop for UnboundedReceiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `round` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]      |
[INFO] [stdout]  969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]      |
[INFO] [stdout]  969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/voter/voting_round.rs:449:43
[INFO] [stdout]     |
[INFO] [stdout] 449 |         while let Poll::Ready(Some(incoming)) = Stream::poll_next(Pin::new(&mut self.incoming), cx)
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                 up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 452 |             self.handle_vote(incoming?)?;
[INFO] [stdout]     |             ----------------------------
[INFO] [stdout]     |             |                |
[INFO] [stdout]     |             |                this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |             |                `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 453 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            help: consider importing one of these traits
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/voter/mod.rs:606:5
[INFO] [stdout]     |
[INFO] [stdout] 606 |                 Stream::poll_next(Pin::new(&mut inner.past_rounds), cx)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                 up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 607 |             {
[INFO] [stdout] 608 |                 let (number, commit) = item?;
[INFO] [stdout]     |                                        -----
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                        `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 609 |                 self.global_out.push(CommunicationOut::Commit(number, commit));
[INFO] [stdout] 610 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/voter/mod.rs:614:4
[INFO] [stdout]     |
[INFO] [stdout] 614 |             Stream::poll_next(Pin::new(&mut self.finalized_notifications), cx)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |             up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 615 |         {
[INFO] [stdout] 616 |             let inner = self.inner.clone();
[INFO] [stdout]     |                 -----
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `inner` calls a custom destructor
[INFO] [stdout]     |                 `inner` will be dropped later as of Edition 2024
[INFO] [stdout] 617 |             let mut inner = inner.lock();
[INFO] [stdout]     |                 ---------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 618 |
[INFO] [stdout] 619 |             let (f_hash, f_num, round, commit) =
[INFO] [stdout]     |                  ------                ------
[INFO] [stdout]     |                  |                     |
[INFO] [stdout]     |                  |                     `commit` calls a custom destructor
[INFO] [stdout]     |                  |                     `commit` will be dropped later as of Edition 2024
[INFO] [stdout]     |                  `f_hash` calls a custom destructor
[INFO] [stdout]     |                  `f_hash` will be dropped later as of Edition 2024
[INFO] [stdout] 620 |                 res.expect("one sender always kept alive in self.best_round; qed");
[INFO] [stdout]     |                 ------------------------------------------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 625 |                 self.env.finalize_block(f_hash.clone(), f_num, round, commit)?;
[INFO] [stdout]     |                 --------------------------------------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 631 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `inner` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]     |
[INFO] [stdout] 969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `inner` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.32/src/stream/futures_unordered/mod.rs:575:1
[INFO] [stdout]     |
[INFO] [stdout] 575 | impl<Fut> Drop for FuturesUnordered<Fut> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `inner` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]     |
[INFO] [stdout] 969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stdout]     |
[INFO] [stdout] 701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            1080 +     use crate::voter::stream::StreamExt;
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/voter/mod.rs:662:12
[INFO] [stdout]     |
[INFO] [stdout] 658 |                     let mut inner = self.inner.lock();
[INFO] [stdout]     |                         ---------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `inner` calls a custom destructor
[INFO] [stdout]     |                         `inner` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 662 |                     match inner.past_rounds.import_commit(round_number, commit) { Some(commit) => {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 699 |                 },
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `inner` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stdout]     |
[INFO] [stdout] 701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/voter/mod.rs:646:10
[INFO] [stdout]     |
[INFO] [stdout] 646 |               match item? {
[INFO] [stdout]     |                     ^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                     up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                     up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 647 |                   CommunicationIn::Commit(round_number, commit, mut process_commit_outcome) => {
[INFO] [stdout]     |                                                                 --------------------------
[INFO] [stdout]     |                                                                 |
[INFO] [stdout]     |                                                                 `process_commit_outcome` calls a custom destructor
[INFO] [stdout]     |                                                                 `process_commit_outcome` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 658 |                       let mut inner = self.inner.lock();
[INFO] [stdout]     |                           ---------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `inner` calls a custom destructor
[INFO] [stdout]     |                           `inner` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 662 |                       match inner.past_rounds.import_commit(round_number, commit) { Some(commit) => {
[INFO] [stdout]     |                                                                                          ------
[INFO] [stdout]     |                                                                                          |
[INFO] [stdout]     |                                                                                          `commit` calls a custom destructor
[INFO] [stdout]     |                                                                                          `commit` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 678 | /                                 self.env.finalize_block(
[INFO] [stdout] 679 | |                                     commit.target_hash.clone(),
[INFO] [stdout] 680 | |                                     commit.target_number,
[INFO] [stdout] 681 | |                                     round_number,
[INFO] [stdout] 682 | |                                     commit,
[INFO] [stdout] 683 | |                                 )?;
[INFO] [stdout]     | |                                  -
[INFO] [stdout]     | |                                  |
[INFO] [stdout]     | |__________________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 700 |                   CommunicationIn::CatchUp(catch_up, mut process_catch_up_outcome) => {
[INFO] [stdout]     |                                                      ----------------------------
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      `process_catch_up_outcome` calls a custom destructor
[INFO] [stdout]     |                                                      `process_catch_up_outcome` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 707 |                       let mut inner = self.inner.lock();
[INFO] [stdout]     |                           ---------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 708 |
[INFO] [stdout] 709 |                       let round = match validate_catch_up(
[INFO] [stdout]     |  _______________________________________-
[INFO] [stdout]     | |_______________________________________|
[INFO] [stdout] 710 | |                         catch_up,
[INFO] [stdout] 711 | |                         &*self.env,
[INFO] [stdout] 712 | |                         &self.voters,
[INFO] [stdout] 713 | |                         inner.best_round.round_number(),
[INFO] [stdout] 714 | |                     ) { Some(round) => {
[INFO] [stdout]     | |                     -
[INFO] [stdout]     | |_____________________|
[INFO] [stdout]     | |_____________________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 722 | |                     let state = round.state();
[INFO] [stdout]     | |                         -----
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `state` calls a custom destructor
[INFO] [stdout]     | |                         `state` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 726 | |                     let mut just_completed = VotingRound::completed(
[INFO] [stdout]     | |                         ------------------
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `just_completed` calls a custom destructor
[INFO] [stdout]     | |                         `just_completed` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 733 | |                     let new_best = VotingRound::new(
[INFO] [stdout]     | |                         --------
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `new_best` calls a custom destructor
[INFO] [stdout]     | |                         `new_best` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 744 | |                     if let Some((f_hash, f_num)) = state.finalized.clone() {
[INFO] [stdout]     | |                                  ------            -----------------------
[INFO] [stdout]     | |                                  |                 |
[INFO] [stdout]     | |                                  |                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     | |                                  |                 `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                  `f_hash` calls a custom destructor
[INFO] [stdout]     | |                                  `f_hash` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 750 | /                     self.env.completed(
[INFO] [stdout] 751 | |                         just_completed.round_number(),
[INFO] [stdout] 752 | |                         just_completed.round_state(),
[INFO] [stdout] 753 | |                         just_completed.dag_base(),
[INFO] [stdout] 754 | |                         just_completed.historical_votes(),
[INFO] [stdout] 755 | |                     )?;
[INFO] [stdout]     | |                      -
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     | |______________________this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                        `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 766 | |         }
[INFO] [stdout]     | |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `process_commit_outcome` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `inner` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stdout]     |
[INFO] [stdout] 701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `process_catch_up_outcome` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stdout]     |
[INFO] [stdout] 701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `just_completed` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]     |
[INFO] [stdout] 969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `new_best` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]     |
[INFO] [stdout] 969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            1080 +     use futures::StreamExt;
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/voter/mod.rs:645:39
[INFO] [stdout]     |
[INFO] [stdout] 645 |           while let Poll::Ready(Some(item)) = Stream::poll_next(Pin::new(&mut self.global_in), cx) {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                               up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 646 |               match item? {
[INFO] [stdout] 647 |                   CommunicationIn::Commit(round_number, commit, mut process_commit_outcome) => {
[INFO] [stdout]     |                                                                 --------------------------
[INFO] [stdout]     |                                                                 |
[INFO] [stdout]     |                                                                 `process_commit_outcome` calls a custom destructor
[INFO] [stdout]     |                                                                 `process_commit_outcome` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 658 |                       let mut inner = self.inner.lock();
[INFO] [stdout]     |                           ---------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `inner` calls a custom destructor
[INFO] [stdout]     |                           `inner` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 662 |                       match inner.past_rounds.import_commit(round_number, commit) { Some(commit) => {
[INFO] [stdout]     |                                                                                          ------
[INFO] [stdout]     |                                                                                          |
[INFO] [stdout]     |                                                                                          `commit` calls a custom destructor
[INFO] [stdout]     |                                                                                          `commit` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 678 | /                                 self.env.finalize_block(
[INFO] [stdout] 679 | |                                     commit.target_hash.clone(),
[INFO] [stdout] 680 | |                                     commit.target_number,
[INFO] [stdout] 681 | |                                     round_number,
[INFO] [stdout] 682 | |                                     commit,
[INFO] [stdout] 683 | |                                 )?;
[INFO] [stdout]     | |                                  -
[INFO] [stdout]     | |                                  |
[INFO] [stdout]     | |__________________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 700 |                   CommunicationIn::CatchUp(catch_up, mut process_catch_up_outcome) => {
[INFO] [stdout]     |                                                      ----------------------------
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      `process_catch_up_outcome` calls a custom destructor
[INFO] [stdout]     |                                                      `process_catch_up_outcome` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 707 |                       let mut inner = self.inner.lock();
[INFO] [stdout]     |                           ---------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 708 |
[INFO] [stdout] 709 |                       let round = match validate_catch_up(
[INFO] [stdout]     |  _______________________________________-
[INFO] [stdout]     | |_______________________________________|
[INFO] [stdout] 710 | |                         catch_up,
[INFO] [stdout] 711 | |                         &*self.env,
[INFO] [stdout] 712 | |                         &self.voters,
[INFO] [stdout] 713 | |                         inner.best_round.round_number(),
[INFO] [stdout] 714 | |                     ) { Some(round) => {
[INFO] [stdout]     | |                     -
[INFO] [stdout]     | |_____________________|
[INFO] [stdout]     | |_____________________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 722 | |                     let state = round.state();
[INFO] [stdout]     | |                         -----
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `state` calls a custom destructor
[INFO] [stdout]     | |                         `state` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 726 | |                     let mut just_completed = VotingRound::completed(
[INFO] [stdout]     | |                         ------------------
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `just_completed` calls a custom destructor
[INFO] [stdout]     | |                         `just_completed` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 733 | |                     let new_best = VotingRound::new(
[INFO] [stdout]     | |                         --------
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `new_best` calls a custom destructor
[INFO] [stdout]     | |                         `new_best` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 744 | |                     if let Some((f_hash, f_num)) = state.finalized.clone() {
[INFO] [stdout]     | |                                  ------            -----------------------
[INFO] [stdout]     | |                                  |                 |
[INFO] [stdout]     | |                                  |                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     | |                                  |                 `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                  `f_hash` calls a custom destructor
[INFO] [stdout]     | |                                  `f_hash` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 750 | /                     self.env.completed(
[INFO] [stdout] 751 | |                         just_completed.round_number(),
[INFO] [stdout] 752 | |                         just_completed.round_state(),
[INFO] [stdout] 753 | |                         just_completed.dag_base(),
[INFO] [stdout] 754 | |                         just_completed.historical_votes(),
[INFO] [stdout] 755 | |                     )?;
[INFO] [stdout]     | |                      -
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     | |______________________this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                        `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 766 | |         }
[INFO] [stdout]     | |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `process_commit_outcome` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `inner` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stdout]     |
[INFO] [stdout] 701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `process_catch_up_outcome` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stdout]     |
[INFO] [stdout] 701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `just_completed` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]     |
[INFO] [stdout] 969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `new_best` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stdout]     |
[INFO] [stdout] 969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/voter/mod.rs:1040:9
[INFO] [stdout]      |
[INFO] [stdout] 1039 |     for crate::SignedPrevote { prevote, id, signature } in catch_up.prevotes {
[INFO] [stdout]      |                                                            -----------------
[INFO] [stdout]      |                                                            |
[INFO] [stdout]      |                                                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 1040 |         match round.import_prevote(env, prevote, id, signature) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1052 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/voter/mod.rs:1056:9
[INFO] [stdout]      |
[INFO] [stdout] 1055 |     for crate::SignedPrecommit { precommit, id, signature } in catch_up.precommits {
[INFO] [stdout]      |                                                                -------------------
[INFO] [stdout]      |                                                                |
[INFO] [stdout]      |                                                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                                                `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 1056 |         match round.import_precommit(env, precommit, id, signature) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1068 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/voter_set.rs:67:11
[INFO] [stdout]    |
[INFO] [stdout] 61 |         for (id, weight) in weights {
[INFO] [stdout]    |              --             -------
[INFO] [stdout]    |              |              |
[INFO] [stdout]    |              |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |              |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |              `id` calls a custom destructor
[INFO] [stdout]    |              `id` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 67 |                 match voters.entry(id) {
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 81 |             }
[INFO] [stdout]    |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            error[E0433]: cannot find type `StreamExt` in this scope
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/testing.rs:404:11
[INFO] [stdout]     |
[INFO] [stdout] 404 |                 match Stream::poll_next(Pin::new(&mut self.receiver), cx) {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 407 |                     Poll::Ready(Some(item)) => {
[INFO] [stdout]     |                                      ----
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      `item` calls a custom destructor
[INFO] [stdout]     |                                      `item` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 410 |                             let _ = sender.unbounded_send(item.clone());
[INFO] [stdout]     |                                     -----------------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 414 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                --> src/voter/mod.rs:1378:4
[INFO] [stdout] warning: `impl futures::Stream<Item = Result<M, Error>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/testing.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 383 |         ) -> (impl Stream<Item = Result<M, Error>>, impl Sink<N, Error = Error>) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/testing.rs:381:4
[INFO] [stdout]     |
[INFO] [stdout] 381 |             &mut self,
[INFO] [stdout]     |             ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]     = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 383 |         ) -> (impl Stream<Item = Result<M, Error>> + use<N, F, M>, impl Sink<N, Error = Error>) {
[INFO] [stdout]     |                                                    ++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stdout] warning: `impl futures::Sink<N, Error = Error>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/testing.rs:383:47
[INFO] [stdout]     |
[INFO] [stdout] 383 |         ) -> (impl Stream<Item = Result<M, Error>>, impl Sink<N, Error = Error>) {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/testing.rs:381:4
[INFO] [stdout]     |
[INFO] [stdout] 381 |             &mut self,
[INFO] [stdout]     |             ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 383 |         ) -> (impl Stream<Item = Result<M, Error>>, impl Sink<N, Error = Error> + use<N, F, M>) {
[INFO] [stdout]     |                                                                                 ++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            1378 |             StreamExt::into_future(commits_stream).then(|(_, stream)| {
[INFO] [stdout] warning: `impl futures::Stream<Item = Result<SignedMessage<&'static str, u32, environment::Signature, Id>, Error>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/testing.rs:446:4
[INFO] [stdout]     |
[INFO] [stdout] 446 |             impl Stream<Item = Result<SignedMessage<&'static str, u32, Signature, Id>, Error>>,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/testing.rs:442:4
[INFO] [stdout]     |
[INFO] [stdout] 442 |             &self,
[INFO] [stdout]     |             ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 446 |             impl Stream<Item = Result<SignedMessage<&'static str, u32, Signature, Id>, Error>> + use<>,
[INFO] [stdout]     |                                                                                                +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |             ^^^^^^^^^ use of undeclared type `StreamExt`
[INFO] [stdout] warning: `impl futures::Sink<Message<&'static str, u32>, Error = Error>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/testing.rs:447:4
[INFO] [stdout]     |
[INFO] [stdout] 447 |             impl Sink<Message<&'static str, u32>, Error = Error>,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/testing.rs:442:4
[INFO] [stdout]     |
[INFO] [stdout] 442 |             &self,
[INFO] [stdout]     |             ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 447 |             impl Sink<Message<&'static str, u32>, Error = Error> + use<>,
[INFO] [stdout]     |                                                                  +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stdout] warning: `impl futures::Stream<Item = Result<voter::CommunicationIn<&'static str, u32, environment::Signature, Id>, Error>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/testing.rs:463:4
[INFO] [stdout]     |
[INFO] [stdout] 463 |             impl Stream<Item = Result<CommunicationIn<&'static str, u32, Signature, Id>, Error>>,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/testing.rs:461:4
[INFO] [stdout]     |
[INFO] [stdout] 461 |             &self,
[INFO] [stdout]     |             ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 463 |             impl Stream<Item = Result<CommunicationIn<&'static str, u32, Signature, Id>, Error>> + use<>,
[INFO] [stdout]     |                                                                                                  +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            help: a trait with a similar name exists
[INFO] [stdout] warning: `impl futures::Sink<voter::CommunicationOut<&'static str, u32, environment::Signature, Id>, Error = Error>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/testing.rs:464:4
[INFO] [stdout]     |
[INFO] [stdout] 464 |             impl Sink<CommunicationOut<&'static str, u32, Signature, Id>, Error = Error>,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/testing.rs:461:4
[INFO] [stdout]     |
[INFO] [stdout] 461 |             &self,
[INFO] [stdout]     |             ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 464 |             impl Sink<CommunicationOut<&'static str, u32, Signature, Id>, Error = Error> + use<>,
[INFO] [stdout]     |                                                                                          +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stderr]            1378 -             StreamExt::into_future(commits_stream).then(|(_, stream)| {
[INFO] [stderr]            1378 +             Stream::into_future(commits_stream).then(|(_, stream)| {
[INFO] [stderr]                 |
[INFO] [stderr]            help: consider importing one of these traits
[INFO] [stderr]                 |
[INFO] [stderr]            1080 +     use crate::voter::stream::StreamExt;
[INFO] [stderr]                 |
[INFO] [stderr]            1080 +     use futures::StreamExt;
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0433]: cannot find type `StreamExt` in this scope
[INFO] [stderr]                --> src/voter/mod.rs:1450:15
[INFO] [stderr]                 |
[INFO] [stderr]            1450 |             .run_until(StreamExt::into_future(env.finalized_stream()).map(move |(msg, _)| msg.unwrap().2));
[INFO] [stderr]                 |                        ^^^^^^^^^ use of undeclared type `StreamExt`
[INFO] [stderr]                 |
[INFO] [stderr]            help: a trait with a similar name exists
[INFO] [stderr]                 |
[INFO] [stderr]            1450 -             .run_until(StreamExt::into_future(env.finalized_stream()).map(move |(msg, _)| msg.unwrap().2));
[INFO] [stderr]            1450 +             .run_until(Stream::into_future(env.finalized_stream()).map(move |(msg, _)| msg.unwrap().2));
[INFO] [stderr]                 |
[INFO] [stderr]            help: consider importing one of these traits
[INFO] [stderr]                 |
[INFO] [stderr]            1080 +     use crate::voter::stream::StreamExt;
[INFO] [stderr]                 |
[INFO] [stderr]            1080 +     use futures::StreamExt;
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0433]: cannot find type `StreamExt` in this scope
[INFO] [stderr]                --> src/voter/mod.rs:1532:19
[INFO] [stderr]                 |
[INFO] [stderr]            1532 |         let finalized = StreamExt::into_future(env.finalized_stream().take(1));
[INFO] [stderr]                 |                         ^^^^^^^^^ use of undeclared type `StreamExt`
[INFO] [stderr]                 |
[INFO] [stderr]            help: a trait with a similar name exists
[INFO] [stderr]                 |
[INFO] [stderr]            1532 -         let finalized = StreamExt::into_future(env.finalized_stream().take(1));
[INFO] [stderr]            1532 +         let finalized = Stream::into_future(env.finalized_stream().take(1));
[INFO] [stderr]                 |
[INFO] [stderr]            help: consider importing one of these traits
[INFO] [stderr]                 |
[INFO] [stderr]            1080 +     use crate::voter::stream::StreamExt;
[INFO] [stderr]                 |
[INFO] [stderr]            1080 +     use futures::StreamExt;
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0433]: cannot find type `StreamExt` in this scope
[INFO] [stderr]                --> src/voter/mod.rs:1688:4
[INFO] [stderr]                 |
[INFO] [stderr]            1688 |             StreamExt::into_future(round_stream
[INFO] [stderr]                 |             ^^^^^^^^^ use of undeclared type `StreamExt`
[INFO] [stderr]                 |
[INFO] [stderr]            help: a trait with a similar name exists
[INFO] [stderr]                 |
[INFO] [stderr]            1688 -             StreamExt::into_future(round_stream
[INFO] [stderr]            1688 +             Stream::into_future(round_stream
[INFO] [stderr]                 |
[INFO] [stderr]            help: consider importing one of these traits
[INFO] [stderr]                 |
[INFO] [stderr]            1080 +     use crate::voter::stream::StreamExt;
[INFO] [stderr]                 |
[INFO] [stderr]            1080 +     use futures::StreamExt;
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/vote_graph.rs:192:10
[INFO] [stderr]                |
[INFO] [stderr]            183 |         let mut inspecting_hash = hash;
[INFO] [stderr]                |             -------------------
[INFO] [stderr]                |             |
[INFO] [stderr]                |             `inspecting_hash` calls a custom destructor
[INFO] [stderr]                |             `inspecting_hash` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            192 |             match active_entry.ancestor_node() {
[INFO] [stderr]                |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |                   |
[INFO] [stderr]                |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            196 |         }
[INFO] [stderr]                |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]                = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/vote_graph.rs:211:10
[INFO] [stderr]                |
[INFO] [stderr]            206 |     pub fn find_ancestor<F>(&self, mut hash: H, mut number: N, condition: F) -> Option<(H, N)>
[INFO] [stderr]                |                                    --------
[INFO] [stderr]                |                                    |
[INFO] [stderr]                |                                    `hash` calls a custom destructor
[INFO] [stderr]                |                                    `hash` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            211 |             match self.find_containing_nodes(hash.clone(), number) {
[INFO] [stderr]                |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |                   |
[INFO] [stderr]                |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            229 |                 Some(children) => {
[INFO] [stderr]                |                      --------
[INFO] [stderr]                |                      |
[INFO] [stderr]                |                      `children` calls a custom destructor
[INFO] [stderr]                |                      `children` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            238 |                     let mut v = V::default();
[INFO] [stderr]                |                         -----
[INFO] [stderr]                |                         |
[INFO] [stderr]                |                         `v` calls a custom destructor
[INFO] [stderr]                |                         `v` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            260 |         }
[INFO] [stderr]                |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/voter/past_rounds.rs:194:4
[INFO] [stderr]                |
[INFO] [stderr]            194 |             Stream::poll_next(Pin::new(&mut self.import_commits), cx)
[INFO] [stderr]                |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |             |
[INFO] [stderr]                |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                |             up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            195 |         {
[INFO] [stderr]            196 |             if !self.import_commit(voting_round, commit)? {
[INFO] [stderr]                |                 -----------------------------------------
[INFO] [stderr]                |                 |
[INFO] [stderr]                |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                 `#1` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            199 |         }
[INFO] [stderr]                |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/voter/past_rounds.rs:326:10
[INFO] [stderr]                 |
[INFO] [stderr]             326 |               match Stream::poll_next(Pin::new(&mut self.past_rounds), cx) {
[INFO] [stderr]                 |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |                     |
[INFO] [stderr]                 |                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stderr]                 |                     up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]             327 |                   Poll::Ready(Some((Ok(BackgroundRoundChange::Concluded(number)), round))) => {
[INFO] [stderr]                 |                                                                                   -----
[INFO] [stderr]                 |                                                                                   |
[INFO] [stderr]                 |                                                                                   `round` calls a custom destructor
[INFO] [stderr]                 |                                                                                   `round` will be dropped later as of Edition 2024
[INFO] [stderr]             328 |                       let round = &round.inner;
[INFO] [stderr]             329 | /                     round.env().concluded(
[INFO] [stderr]             330 | |                         round.round_number(),
[INFO] [stderr]             331 | |                         round.round_state(),
[INFO] [stderr]             332 | |                         round.dag_base(),
[INFO] [stderr]             333 | |                         round.historical_votes(),
[INFO] [stderr]             334 | |                     )?;
[INFO] [stderr]                 | |                      -
[INFO] [stderr]                 | |                      |
[INFO] [stderr]                 | |______________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                        `#1` will be dropped later as of Edition 2024
[INFO] [stderr]             335 |
[INFO] [stderr]             336 |                       self.commit_senders.remove(&number);
[INFO] [stderr]                 |                       -----------------------------------
[INFO] [stderr]                 |                       |
[INFO] [stderr]                 |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                 |                       `#2` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]             359 |           }
[INFO] [stderr]                 |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#3` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:1352:1
[INFO] [stderr]                 |
[INFO] [stderr]            1352 | impl<T> Drop for UnboundedReceiver<T> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#3` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stderr]                 |
[INFO] [stderr]             969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `round` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:1352:1
[INFO] [stderr]                 |
[INFO] [stderr]            1352 | impl<T> Drop for UnboundedReceiver<T> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `round` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stderr]                 |
[INFO] [stderr]             969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stderr]                 |
[INFO] [stderr]             969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/voter/voting_round.rs:449:43
[INFO] [stderr]                |
[INFO] [stderr]            449 |         while let Poll::Ready(Some(incoming)) = Stream::poll_next(Pin::new(&mut self.incoming), cx)
[INFO] [stderr]                |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |                                                 |
[INFO] [stderr]                |                                                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stderr]                |                                                 up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            452 |             self.handle_vote(incoming?)?;
[INFO] [stderr]                |             ----------------------------
[INFO] [stderr]                |             |                |
[INFO] [stderr]                |             |                this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                |             |                `#2` will be dropped later as of Edition 2024
[INFO] [stderr]                |             this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |             `#1` will be dropped later as of Edition 2024
[INFO] [stderr]            453 |         }
[INFO] [stderr]                |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/voter/mod.rs:606:5
[INFO] [stderr]                |
[INFO] [stderr]            606 |                 Stream::poll_next(Pin::new(&mut inner.past_rounds), cx)
[INFO] [stderr]                |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |                 |
[INFO] [stderr]                |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stderr]                |                 up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            607 |             {
[INFO] [stderr]            608 |                 let (number, commit) = item?;
[INFO] [stderr]                |                                        -----
[INFO] [stderr]                |                                        |
[INFO] [stderr]                |                                        this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                                        `#1` will be dropped later as of Edition 2024
[INFO] [stderr]                |                                        this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                |                                        `#2` will be dropped later as of Edition 2024
[INFO] [stderr]            609 |                 self.global_out.push(CommunicationOut::Commit(number, commit));
[INFO] [stderr]            610 |             }
[INFO] [stderr]                |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/voter/mod.rs:614:4
[INFO] [stderr]                |
[INFO] [stderr]            614 |             Stream::poll_next(Pin::new(&mut self.finalized_notifications), cx)
[INFO] [stderr]                |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |             |
[INFO] [stderr]                |             this value will be stored in a temporary; let us call it `#4`
[INFO] [stderr]                |             up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            615 |         {
[INFO] [stderr]            616 |             let inner = self.inner.clone();
[INFO] [stderr]                |                 -----
[INFO] [stderr]                |                 |
[INFO] [stderr]                |                 `inner` calls a custom destructor
[INFO] [stderr]                |                 `inner` will be dropped later as of Edition 2024
[INFO] [stderr]            617 |             let mut inner = inner.lock();
[INFO] [stderr]                |                 ---------
[INFO] [stderr]                |                 |
[INFO] [stderr]                |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                 `#1` will be dropped later as of Edition 2024
[INFO] [stderr]            618 |
[INFO] [stderr]            619 |             let (f_hash, f_num, round, commit) =
[INFO] [stderr]                |                  ------                ------
[INFO] [stderr]                |                  |                     |
[INFO] [stderr]                |                  |                     `commit` calls a custom destructor
[INFO] [stderr]                |                  |                     `commit` will be dropped later as of Edition 2024
[INFO] [stderr]                |                  `f_hash` calls a custom destructor
[INFO] [stderr]                |                  `f_hash` will be dropped later as of Edition 2024
[INFO] [stderr]            620 |                 res.expect("one sender always kept alive in self.best_round; qed");
[INFO] [stderr]                |                 ------------------------------------------------------------------
[INFO] [stderr]                |                 |
[INFO] [stderr]                |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                |                 `#2` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            625 |                 self.env.finalize_block(f_hash.clone(), f_num, round, commit)?;
[INFO] [stderr]                |                 --------------------------------------------------------------
[INFO] [stderr]                |                 |
[INFO] [stderr]                |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stderr]                |                 `#3` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            631 |         }
[INFO] [stderr]                |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]            note: `inner` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stderr]                |
[INFO] [stderr]            969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `inner` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.32/src/stream/futures_unordered/mod.rs:575:1
[INFO] [stderr]                |
[INFO] [stderr]            575 | impl<Fut> Drop for FuturesUnordered<Fut> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `inner` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stderr]                |
[INFO] [stderr]            969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stderr]                |
[INFO] [stderr]            701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/voter/mod.rs:662:12
[INFO] [stderr]                |
[INFO] [stderr]            658 |                     let mut inner = self.inner.lock();
[INFO] [stderr]                |                         ---------
[INFO] [stderr]                |                         |
[INFO] [stderr]                |                         `inner` calls a custom destructor
[INFO] [stderr]                |                         `inner` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            662 |                     match inner.past_rounds.import_commit(round_number, commit) { Some(commit) => {
[INFO] [stderr]                |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |                           |
[INFO] [stderr]                |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            699 |                 },
[INFO] [stderr]                |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]            note: `inner` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stderr]                |
[INFO] [stderr]            701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/voter/mod.rs:646:10
[INFO] [stderr]                |
[INFO] [stderr]            646 |               match item? {
[INFO] [stderr]                |                     ^^^^^
[INFO] [stderr]                |                     |
[INFO] [stderr]                |                     this value will be stored in a temporary; let us call it `#6`
[INFO] [stderr]                |                     up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]                |                     this value will be stored in a temporary; let us call it `#7`
[INFO] [stderr]                |                     up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            647 |                   CommunicationIn::Commit(round_number, commit, mut process_commit_outcome) => {
[INFO] [stderr]                |                                                                 --------------------------
[INFO] [stderr]                |                                                                 |
[INFO] [stderr]                |                                                                 `process_commit_outcome` calls a custom destructor
[INFO] [stderr]                |                                                                 `process_commit_outcome` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            658 |                       let mut inner = self.inner.lock();
[INFO] [stderr]                |                           ---------
[INFO] [stderr]                |                           |
[INFO] [stderr]                |                           `inner` calls a custom destructor
[INFO] [stderr]                |                           `inner` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            662 |                       match inner.past_rounds.import_commit(round_number, commit) { Some(commit) => {
[INFO] [stderr]                |                                                                                          ------
[INFO] [stderr]                |                                                                                          |
[INFO] [stderr]                |                                                                                          `commit` calls a custom destructor
[INFO] [stderr]                |                                                                                          `commit` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            678 | /                                 self.env.finalize_block(
[INFO] [stderr]            679 | |                                     commit.target_hash.clone(),
[INFO] [stderr]            680 | |                                     commit.target_number,
[INFO] [stderr]            681 | |                                     round_number,
[INFO] [stderr]            682 | |                                     commit,
[INFO] [stderr]            683 | |                                 )?;
[INFO] [stderr]                | |                                  -
[INFO] [stderr]                | |                                  |
[INFO] [stderr]                | |__________________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                                    `#1` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            700 |                   CommunicationIn::CatchUp(catch_up, mut process_catch_up_outcome) => {
[INFO] [stderr]                |                                                      ----------------------------
[INFO] [stderr]                |                                                      |
[INFO] [stderr]                |                                                      `process_catch_up_outcome` calls a custom destructor
[INFO] [stderr]                |                                                      `process_catch_up_outcome` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            707 |                       let mut inner = self.inner.lock();
[INFO] [stderr]                |                           ---------
[INFO] [stderr]                |                           |
[INFO] [stderr]                |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                |                           `#2` will be dropped later as of Edition 2024
[INFO] [stderr]            708 |
[INFO] [stderr]            709 |                       let round = match validate_catch_up(
[INFO] [stderr]                |  _______________________________________-
[INFO] [stderr]                | |_______________________________________|
[INFO] [stderr]            710 | |                         catch_up,
[INFO] [stderr]            711 | |                         &*self.env,
[INFO] [stderr]            712 | |                         &self.voters,
[INFO] [stderr]            713 | |                         inner.best_round.round_number(),
[INFO] [stderr]            714 | |                     ) { Some(round) => {
[INFO] [stderr]                | |                     -
[INFO] [stderr]                | |_____________________|
[INFO] [stderr]                | |_____________________this value will be stored in a temporary; let us call it `#3`
[INFO] [stderr]                |                       `#3` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            722 | |                     let state = round.state();
[INFO] [stderr]                | |                         -----
[INFO] [stderr]                | |                         |
[INFO] [stderr]                | |                         `state` calls a custom destructor
[INFO] [stderr]                | |                         `state` will be dropped later as of Edition 2024
[INFO] [stderr]            ...   |
[INFO] [stderr]            726 | |                     let mut just_completed = VotingRound::completed(
[INFO] [stderr]                | |                         ------------------
[INFO] [stderr]                | |                         |
[INFO] [stderr]                | |                         `just_completed` calls a custom destructor
[INFO] [stderr]                | |                         `just_completed` will be dropped later as of Edition 2024
[INFO] [stderr]            ...   |
[INFO] [stderr]            733 | |                     let new_best = VotingRound::new(
[INFO] [stderr]                | |                         --------
[INFO] [stderr]                | |                         |
[INFO] [stderr]                | |                         `new_best` calls a custom destructor
[INFO] [stderr]                | |                         `new_best` will be dropped later as of Edition 2024
[INFO] [stderr]            ...   |
[INFO] [stderr]            744 | |                     if let Some((f_hash, f_num)) = state.finalized.clone() {
[INFO] [stderr]                | |                                  ------            -----------------------
[INFO] [stderr]                | |                                  |                 |
[INFO] [stderr]                | |                                  |                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stderr]                | |                                  |                 `#4` will be dropped later as of Edition 2024
[INFO] [stderr]                | |                                  `f_hash` calls a custom destructor
[INFO] [stderr]                | |                                  `f_hash` will be dropped later as of Edition 2024
[INFO] [stderr]            ...   |
[INFO] [stderr]            750 | /                     self.env.completed(
[INFO] [stderr]            751 | |                         just_completed.round_number(),
[INFO] [stderr]            752 | |                         just_completed.round_state(),
[INFO] [stderr]            753 | |                         just_completed.dag_base(),
[INFO] [stderr]            754 | |                         just_completed.historical_votes(),
[INFO] [stderr]            755 | |                     )?;
[INFO] [stderr]                | |                      -
[INFO] [stderr]                | |______________________|
[INFO] [stderr]                | |______________________this value will be stored in a temporary; let us call it `#5`
[INFO] [stderr]                |                        `#5` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            766 | |         }
[INFO] [stderr]                | |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `process_commit_outcome` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `inner` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stderr]                |
[INFO] [stderr]            701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                = note: `process_catch_up_outcome` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stderr]                |
[INFO] [stderr]            701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `just_completed` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stderr]                |
[INFO] [stderr]            969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `new_best` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stderr]                |
[INFO] [stderr]            969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/voter/mod.rs:645:39
[INFO] [stderr]                |
[INFO] [stderr]            645 |           while let Poll::Ready(Some(item)) = Stream::poll_next(Pin::new(&mut self.global_in), cx) {
[INFO] [stderr]                |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |                                               |
[INFO] [stderr]                |                                               this value will be stored in a temporary; let us call it `#6`
[INFO] [stderr]                |                                               up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            646 |               match item? {
[INFO] [stderr]            647 |                   CommunicationIn::Commit(round_number, commit, mut process_commit_outcome) => {
[INFO] [stderr]                |                                                                 --------------------------
[INFO] [stderr]                |                                                                 |
[INFO] [stderr]                |                                                                 `process_commit_outcome` calls a custom destructor
[INFO] [stderr]                |                                                                 `process_commit_outcome` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            658 |                       let mut inner = self.inner.lock();
[INFO] [stderr]                |                           ---------
[INFO] [stderr]                |                           |
[INFO] [stderr]                |                           `inner` calls a custom destructor
[INFO] [stderr]                |                           `inner` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            662 |                       match inner.past_rounds.import_commit(round_number, commit) { Some(commit) => {
[INFO] [stderr]                |                                                                                          ------
[INFO] [stderr]                |                                                                                          |
[INFO] [stderr]                |                                                                                          `commit` calls a custom destructor
[INFO] [stderr]                |                                                                                          `commit` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            678 | /                                 self.env.finalize_block(
[INFO] [stderr]            679 | |                                     commit.target_hash.clone(),
[INFO] [stderr]            680 | |                                     commit.target_number,
[INFO] [stderr]            681 | |                                     round_number,
[INFO] [stderr]            682 | |                                     commit,
[INFO] [stderr]            683 | |                                 )?;
[INFO] [stderr]                | |                                  -
[INFO] [stderr]                | |                                  |
[INFO] [stderr]                | |__________________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                                    `#1` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            700 |                   CommunicationIn::CatchUp(catch_up, mut process_catch_up_outcome) => {
[INFO] [stderr]                |                                                      ----------------------------
[INFO] [stderr]                |                                                      |
[INFO] [stderr]                |                                                      `process_catch_up_outcome` calls a custom destructor
[INFO] [stderr]                |                                                      `process_catch_up_outcome` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            707 |                       let mut inner = self.inner.lock();
[INFO] [stderr]                |                           ---------
[INFO] [stderr]                |                           |
[INFO] [stderr]                |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                |                           `#2` will be dropped later as of Edition 2024
[INFO] [stderr]            708 |
[INFO] [stderr]            709 |                       let round = match validate_catch_up(
[INFO] [stderr]                |  _______________________________________-
[INFO] [stderr]                | |_______________________________________|
[INFO] [stderr]            710 | |                         catch_up,
[INFO] [stderr]            711 | |                         &*self.env,
[INFO] [stderr]            712 | |                         &self.voters,
[INFO] [stderr]            713 | |                         inner.best_round.round_number(),
[INFO] [stderr]            714 | |                     ) { Some(round) => {
[INFO] [stderr]                | |                     -
[INFO] [stderr]                | |_____________________|
[INFO] [stderr]                | |_____________________this value will be stored in a temporary; let us call it `#3`
[INFO] [stderr]                |                       `#3` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            722 | |                     let state = round.state();
[INFO] [stderr]                | |                         -----
[INFO] [stderr]                | |                         |
[INFO] [stderr]                | |                         `state` calls a custom destructor
[INFO] [stderr]                | |                         `state` will be dropped later as of Edition 2024
[INFO] [stderr]            ...   |
[INFO] [stderr]            726 | |                     let mut just_completed = VotingRound::completed(
[INFO] [stderr]                | |                         ------------------
[INFO] [stderr]                | |                         |
[INFO] [stderr]                | |                         `just_completed` calls a custom destructor
[INFO] [stderr]                | |                         `just_completed` will be dropped later as of Edition 2024
[INFO] [stderr]            ...   |
[INFO] [stderr]            733 | |                     let new_best = VotingRound::new(
[INFO] [stderr]                | |                         --------
[INFO] [stderr]                | |                         |
[INFO] [stderr]                | |                         `new_best` calls a custom destructor
[INFO] [stderr]                | |                         `new_best` will be dropped later as of Edition 2024
[INFO] [stderr]            ...   |
[INFO] [stderr]            744 | |                     if let Some((f_hash, f_num)) = state.finalized.clone() {
[INFO] [stderr]                | |                                  ------            -----------------------
[INFO] [stderr]                | |                                  |                 |
[INFO] [stderr]                | |                                  |                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stderr]                | |                                  |                 `#4` will be dropped later as of Edition 2024
[INFO] [stderr]                | |                                  `f_hash` calls a custom destructor
[INFO] [stderr]                | |                                  `f_hash` will be dropped later as of Edition 2024
[INFO] [stderr]            ...   |
[INFO] [stderr]            750 | /                     self.env.completed(
[INFO] [stderr]            751 | |                         just_completed.round_number(),
[INFO] [stderr]            752 | |                         just_completed.round_state(),
[INFO] [stderr]            753 | |                         just_completed.dag_base(),
[INFO] [stderr]            754 | |                         just_completed.historical_votes(),
[INFO] [stderr]            755 | |                     )?;
[INFO] [stderr]                | |                      -
[INFO] [stderr]                | |______________________|
[INFO] [stderr]                | |______________________this value will be stored in a temporary; let us call it `#5`
[INFO] [stderr]                |                        `#5` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            766 | |         }
[INFO] [stderr]                | |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `process_commit_outcome` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `inner` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stderr]                |
[INFO] [stderr]            701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                = note: `process_catch_up_outcome` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:701:1
[INFO] [stderr]                |
[INFO] [stderr]            701 | impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Drop for MutexGuard<'a, R, T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `just_completed` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stderr]                |
[INFO] [stderr]            969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `new_best` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs:969:1
[INFO] [stderr]                |
[INFO] [stderr]            969 | impl<T> Drop for UnboundedSenderInner<T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/voter/mod.rs:1040:9
[INFO] [stderr]                 |
[INFO] [stderr]            1039 |     for crate::SignedPrevote { prevote, id, signature } in catch_up.prevotes {
[INFO] [stderr]                 |                                                            -----------------
[INFO] [stderr]                 |                                                            |
[INFO] [stderr]                 |                                                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                                                            `#1` will be dropped later as of Edition 2024
[INFO] [stderr]            1040 |         match round.import_prevote(env, prevote, id, signature) {
[INFO] [stderr]                 |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                 |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            1052 |     }
[INFO] [stderr]                 |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/voter/mod.rs:1056:9
[INFO] [stderr]                 |
[INFO] [stderr]            1055 |     for crate::SignedPrecommit { precommit, id, signature } in catch_up.precommits {
[INFO] [stderr]                 |                                                                -------------------
[INFO] [stderr]                 |                                                                |
[INFO] [stderr]                 |                                                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                                                                `#1` will be dropped later as of Edition 2024
[INFO] [stderr]            1056 |         match round.import_precommit(env, precommit, id, signature) {
[INFO] [stderr]                 |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                 |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            1068 |     }
[INFO] [stderr]                 |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]              --> src/voter_set.rs:67:11
[INFO] [stderr]               |
[INFO] [stderr]            61 |         for (id, weight) in weights {
[INFO] [stderr]               |              --             -------
[INFO] [stderr]               |              |              |
[INFO] [stderr]               |              |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]               |              |              `#1` will be dropped later as of Edition 2024
[INFO] [stderr]               |              `id` calls a custom destructor
[INFO] [stderr]               |              `id` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            67 |                 match voters.entry(id) {
[INFO] [stderr]               |                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]               |                       |
[INFO] [stderr]               |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]               |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            81 |             }
[INFO] [stderr]               |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]               |
[INFO] [stderr]               = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]               = warning: this changes meaning in Rust 2024
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/testing.rs:404:11
[INFO] [stderr]                |
[INFO] [stderr]            404 |                 match Stream::poll_next(Pin::new(&mut self.receiver), cx) {
[INFO] [stderr]                |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |                       |
[INFO] [stderr]                |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            407 |                     Poll::Ready(Some(item)) => {
[INFO] [stderr]                |                                      ----
[INFO] [stderr]                |                                      |
[INFO] [stderr]                |                                      `item` calls a custom destructor
[INFO] [stderr]                |                                      `item` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            410 |                             let _ = sender.unbounded_send(item.clone());
[INFO] [stderr]                |                                     -----------------------------------
[INFO] [stderr]                |                                     |
[INFO] [stderr]                |                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                                     `#1` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            414 |             }
[INFO] [stderr]                |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 5 previous errors; 14 warnings emitted
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            For more information about this error, try `rustc --explain E0433`.
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.34s
[INFO] [stderr] crater-edition-check: finality-grandpa v0.16.3 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking finality-grandpa v0.16.3 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0597]: `rounds` does not live long enough
[INFO] [stdout]    --> src/testing.rs:450:4
[INFO] [stdout]     |
[INFO] [stdout] 442 |               &self,
[INFO] [stdout]     |               - let's call the lifetime of this reference `'1`
[INFO] [stdout] ...
[INFO] [stdout] 449 |               let mut rounds = self.rounds.lock();
[INFO] [stdout]     |                   ---------- binding `rounds` declared here
[INFO] [stdout] 450 |               rounds
[INFO] [stdout]     |               -^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |  _____________borrowed value does not live long enough
[INFO] [stdout]     | |
[INFO] [stdout] 451 | |                 .entry(round_number)
[INFO] [stdout] 452 | |                 .or_insert_with(RoundNetwork::new)
[INFO] [stdout] 453 | |                 .add_node(move |message| SignedMessage {
[INFO] [stdout] ...   |
[INFO] [stdout] 456 | |                     id: node_id,
[INFO] [stdout] 457 | |                 })
[INFO] [stdout]     | |__________________- argument requires that `rounds` is borrowed for `'1`
[INFO] [stdout] 458 |           }
[INFO] [stdout]     |           - `rounds` dropped here while still borrowed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `global_messages` does not live long enough
[INFO] [stdout]    --> src/testing.rs:467:4
[INFO] [stdout]     |
[INFO] [stdout] 461 |               &self,
[INFO] [stdout]     |               - let's call the lifetime of this reference `'1`
[INFO] [stdout] ...
[INFO] [stdout] 466 |               let mut global_messages = self.global_messages.lock();
[INFO] [stdout]     |                   ------------------- binding `global_messages` declared here
[INFO] [stdout] 467 |               global_messages.add_node(|message| match message {
[INFO] [stdout]     |               -^^^^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |  _____________borrowed value does not live long enough
[INFO] [stdout]     | |
[INFO] [stdout] 468 | |                 CommunicationOut::Commit(r, commit) =>
[INFO] [stdout] 469 | |                     CommunicationIn::Commit(r, commit.into(), Callback::Blank),
[INFO] [stdout] 470 | |             })
[INFO] [stdout]     | |______________- argument requires that `global_messages` is borrowed for `'1`
[INFO] [stdout] 471 |           }
[INFO] [stdout]     |           - `global_messages` dropped here while still borrowed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/round.rs:99:3
[INFO] [stdout]     |
[INFO] [stdout]  99 |         &mut self,
[INFO] [stdout]     |         ^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 104 |     ) -> AddVoteResult<Vote, Signature> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ) -> AddVoteResult<'_, Vote, Signature> {
[INFO] [stdout]     |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bridge_state.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub(crate) fn get(&self, cx: &mut Context) -> RwLockReadGuard<RoundState<H, N>> {
[INFO] [stdout]    |                       ^^^^^                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub(crate) fn get(&self, cx: &mut Context) -> RwLockReadGuard<'_, RoundState<H, N>> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0597`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `finality-grandpa` (lib test) due to 2 previous errors
[INFO] running `Command { std: "docker" "inspect" "31cfe4d8921721bde3b35cac4a2e81eb6f229e7aeb997ce85643f7b95193b4bd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "31cfe4d8921721bde3b35cac4a2e81eb6f229e7aeb997ce85643f7b95193b4bd", kill_on_drop: false }`
[INFO] [stdout] 31cfe4d8921721bde3b35cac4a2e81eb6f229e7aeb997ce85643f7b95193b4bd
